From Capella 1.2.x to 1.3.x
Modification of all NSURI
[Bugzilla 2092][M2] Add annotations in Capella M2 to specify queries for derived features
The existing annotation http://www.polarsys.org/capella/derived as been enhanced by adding Viatra implementation information. It describes how the derived reference can be computed using Viatra queries.
It is based on two added details on the annotation:
- viatra.expression, describing how the derived reference is implemented.
- viatra.variant, describing which kind of implementation is described in the expression. (alias, opposite, patternbody, freeform, unimplemented)
According to the value of viatra.variant, a Viatra pattern can be created for the given derived reference:

For a TypeA, referencing TypeB by the derived reference containing such annotation. TypeA.reference:TypeB, reference is computed by:
| viatra.variant | viatra.expression | implied pattern |
|---|
| alias | referenceName | pattern (self: TypeA, target: TypeB) {
TypeA.referenceName(self, target)
}
|
| opposite | referenceName | pattern (self: TypeA, target: TypeB) {
TypeB.referenceName(target, self)
}
|
| patternbody | expression | pattern (self: TypeA, target: TypeB) {
expression
}
|
| freeform | expression | expression
|
| unimplemented | N/A | N/A (this reference is not implemented/implementable by a Viatra pattern)
|
- The meta-class SequenceLinkEnd has been added.
- The meta-class ReferenceHierarchyContext has been added.
- The meta-class FunctionalChainInvolvementLink that inherits from FunctionalChainInvolvement and ReferenceHierarchyContext meta-class has been added.
- The meta-class FunctionalChainInvolvementFunction that inherits from FunctionalChainInvolvement and SequenceLinkEnd meta-class has been added.
- The meta-class SequenceLink that inherits from ReferenceHierarchyContext meta-class has been added.
- The meta-class ControlNode that inherits from SequenceLinkEnd has been added.
- The enumeration ControlNodeKind with 3 values OR, AND and ITERATE has been added.
- The reference FunctionalChain.preCondition has been added.
- The reference FunctionalChain.postCondition has been added.
- The containment reference FunctionalChain.ownedSequenceNodes has been added.
- The containment reference FunctionalChain.ownedSequenceLinks has been added.
- The derived reference FunctionalChainInvolvementFunction.outgoingInvolvementLinks has been added.
- The derived reference FunctionalChainInvolvementFunction.incomingInvolvementLinks has been added.
- The reference FunctionalChainInvolvementLink.source has been added.
- The reference FunctionalChainInvolvementLink.target has been added.
- The reference FunctionalChainInvolvementLink.exchangeContext has been added.
- The reference FunctionalChainInvolvement.exchangedItems has been moved to the concrete meta-class FunctionalChainInvolvementLink.exchangedItems.
- The reference FunctionalChainInvolvement.previousFunctionalChainInvolvements has been set as derived.
- The reference SequenceLink.links has been added.
- The reference SequenceLink.source has been added.
- The reference SequenceLink.target has been added.
- The reference ReferenceHierarchyContext.sourceReferenceHierarchy has been added.
- The reference ReferenceHierarchyContext.targetReferenceHierarchy has been added.